1. Field of the Invention
The invention relates to a command timeout scheme for handling input/output (I/O) commands in an enterprise storage subsystem.
2. Background Art
An enterprise storage subsystem normally handles several I/Os at a given point in time. The ability of the enterprise storage subsystem to scale across different nodes and handle higher workloads depends on how low the overhead of the subsystem is. One of the major elements of the overhead is the work associated with checking if the I/O is flowing in the specified amount of time. If the I/O is stuck or if a node is not responding, the storage subsystem has to take action to abort this I/O.
The storage subsystem receives I/O commands and received commands are placed in a set of queues. Most current implementations for checking if the I/Os are flowing properly involve going through the I/Os queued in the subsystem on a regular interval of a few seconds. Depending upon the system load, this checking may take a long time. Also, during this checking process, the queue has to be locked and new I/Os have to wait which further adds to system complexity and overhead.
Command timeout checking in which a storage driver's I/O queue is, on a regular interval of a few seconds, locked and the I/Os queued are checked does exist in existing storage drivers.